﻿using CommonComponents.Model;
using System.Runtime.Serialization;

namespace LASLogic.BusinessLayer.DataModel
{
    [DataContract]
    public class LasUser : User
    {

        #region Properties

        /// <summary>
        /// Id único del usuario
        /// </summary>
        [DataMember]
        public int UserId { get; set; }
        /// <summary>
        /// Id único de la empresa
        /// </summary>
        [DataMember]
        public int CompanyId { get; set; }
        /// <summary>
        /// Compañia a la que pertenece el usuario
        /// </summary>
        [DataMember]
        public Company Company { get; set; }
        /// <summary>
        /// Email del usuario
        /// </summary>
        [DataMember]
        public string Email { get; set; }
        /// <summary>
        /// Login del Usuario
        /// </summary>
        [DataMember]
        public string Login { get; set; }


        #endregion

        #region Constructor

        /// <summary>
        /// Crea un nuevo usuario
        /// </summary>
        /// <param name="userId">Id del usuario (debe ser único) </param>
        /// <param name="companyId">Id de la empresa</param>
        /// <param name="name">Nombre del usuario</param>
        /// <param name="lastName1">Primer apellido del usuario</param>
        /// <param name="lastName2">Segundo apellido del usuario</param>
        /// <param name="login">Login del usuario</param>
        /// <param name="password">Password del usuario</param>
        /// <param name="company">Compañia asociada con el usuario</param>
        /// <param name="email">Correo electronico del usuario</param>
        public LasUser(string name, string lastName1, string lastName2, int userId, int companyId, Company company, string email, string login,string password) : 
            base(string.Empty, password, name, lastName1, lastName2, null)
        {
            UserId = userId;
            CompanyId = companyId;
            Company = company;
            Email = email;
            Login = login;
        }

        /// <summary>
        /// Crea un nuevo usuario
        /// </summary>
        /// <param name="userId">Id del usuario (debe ser único) </param>
        /// <param name="companyId">Id de la empresa</param>
        /// <param name="email"></param>
        /// <param name="login">Login del usuario</param>
        /// <param name="company"></param>
        public LasUser(int userId, int companyId, Company company, string email, string login)
        {
            UserId = userId;
            CompanyId = companyId;
            Company = company;
            Email = email;
            Login = login;
        }

        /// <summary>
        /// Constructor vacio
        /// </summary>
        public LasUser()
        {
        }

        #endregion
    }
}
